﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using DotConferenceCore.GestionParticipant;

namespace WebInterface
{
    public partial class Inscription : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            if (IsPostBack == false)
            {
                RemplirListeType();
            }
        }

        protected void BtnInscriptionClick(object sender, EventArgs e)
        {
            LblErreurIdentifiant.Visible = false;
            LblErreurCreation.Visible = false;

            // Valide que l'identifiant n'est pas utiliser
            if( IsValid )
            {
                // Valide que l'identificant n'est pas utilisé

                if ( DataManager.ParticipantDataManager.Instance.GetBy(string.Format("Identifiant='{0}'", TextIdentifiant.Text) ).Count == 0 )
                {
                    Participant monParticipant = null;
                    Participant.TypeParticipant type =
                        (Participant.TypeParticipant) Convert.ToInt32(ListType.SelectedValue);

                    switch (type)
                    {
                        case Participant.TypeParticipant.Auteur:
                            monParticipant = new Auteur();
                            break;

                        case Participant.TypeParticipant.Evaluateur:
                            monParticipant = new Evaluateur("");
                            break;

                        case Participant.TypeParticipant.Invite:
                            monParticipant = new Invite();
                            break;

                        case Participant.TypeParticipant.Organisateur:
                            monParticipant = new Organisateur();
                            break;

                        case Participant.TypeParticipant.Secretaire:
                            monParticipant = new Secretaire();
                            break;

                        default:
                            monParticipant = new Participant();
                            break;
                    }

                    monParticipant.Identifiant = TextIdentifiant.Text;
                    monParticipant.MotDePasse = TextMotDePasse.Text;
                    monParticipant.Titre = RadioTitre.SelectedValue;
                    monParticipant.Nom = TextNom.Text;
                    monParticipant.Prenom = TextPrenom.Text;
                    monParticipant.Statut = ListType.SelectedValue;
                    monParticipant.Organisme = TextOrganisme.Text;
                    monParticipant.Telephone = TextTelephone.Text;
                    monParticipant.Adresse = TextAdresse.Text;
                    monParticipant.Courriel = TextCourriel.Text;

                    if(DataManager.ParticipantDataManager.Instance.Save(monParticipant))
                    {   //TODO : aller chercher dans la bd, le no du participant qu'on vien de créer
                        //MesVariablesSessions.Instance.no_participant_logger = monParticipant.NumeroParticipant;
                        Response.Redirect("Default.aspx");
                    }
                    else
                    {
                        LblErreurCreation.Visible = true;
                    }
                
                }
                else
                {

                    LblErreurIdentifiant.Visible = true;

                }
            }

        }

        protected void RemplirListeType()
        {
            ListType.Items.Add(new ListItem("Participant",
                                                ((int)
                                                 DotConferenceCore.GestionParticipant.Participant.TypeParticipant.
                                                     Participant).ToString()));
            ListType.Items.Add(new ListItem("Auteur",
                                            ((int)
                                             DotConferenceCore.GestionParticipant.Participant.TypeParticipant.Auteur).
                                                ToString()));
            ListType.Items.Add(new ListItem("Évaluateur",
                                            ((int)
                                             DotConferenceCore.GestionParticipant.Participant.TypeParticipant.Evaluateur)
                                                .ToString()));

            ListType.Items.Add(new ListItem("Invité",
                                            ((int)
                                             DotConferenceCore.GestionParticipant.Participant.TypeParticipant.Invite).
                                                ToString()));
            ListType.Items.Add(new ListItem("Organisateur",
                                            ((int)
                                             DotConferenceCore.GestionParticipant.Participant.TypeParticipant.
                                                 Organisateur).ToString()));
            ListType.Items.Add(new ListItem("Secrétaire",
                                            ((int)
                                             DotConferenceCore.GestionParticipant.Participant.TypeParticipant.Secretaire)
                                                .ToString()));

        }
    }
}
